package demo08.Adapter.duck;

import java.util.Random;

/**
 * 鸭子适配器（鸭子冒充火鸡）
 * 
 * 适配器模式：将一个类的接口转换成客户希望的另一个接口，适配器让原本接口不兼容的类可以合作无间。
 * 
 * 对象适配器模式：使用组合，不仅可适配类也可以适配类的子类，
 * 类适配器模式   ：使用继承，只能用某个特定的被适配的类，但是不需要重新实现整个被适配者，必要时可以覆盖被适配者的行为。
 * ***********************
 * 几种模式区别：
 * 装饰者模式：不改变接口，但是加入责任。
 * 适配器模式：讲一个接口装换成另一个接口。
 * 外观模式：让接口更加简单。
 * */
public class DuckAdapter implements Turkey{//实现了火鸡接口
	Duck duck;
	Random rand;
 
	public DuckAdapter(Duck duck) {//构造适配器对象
		this.duck = duck;
		rand = new Random();
	}
////随机获取int范围内的一个数  rand.nextInt()
	@Override
	public void gobble() {
		// TODO Auto-generated method stub
		duck.quack();
	}

	@Override
	public void fly() {
		// TODO Auto-generated method stub
		if (rand.nextInt(5)  == 0) {//0-5的随机数
		     duck.fly();
		}
	}

}
